# Guides de style L'un des objectifs de l'enseignement d'informatique en CPGE est de vous apprendre à programmer avec élégance. Un code bien écrit est facile à comprendre, à répliquer et à déboguer. Tout comme il existe une variété de langages parlés et écrits, chaque langage de programmation a une syntaxe unique avec des règles grammaticales et un style souhaité. Certains éléments de style - comme donner des noms descriptifs aux variables - sont les mêmes pour chaque langue. Vous trouverez ci-dessous les directives de style pour les différents langages enseignés en CPGE. Certains d'entre eux sont des directives générales de style de programmation et d'autres sont spécifiques à des langages. Vos devoirs contiennent souvent des points de style autogradés et notés manuellement et l'écriture d'un code bien écrit demande de la pratique, alors prenez le temps de réfléchir à l'amélioration de votre code avant de soumettre chaque devoir. ## Liste - {ref}`styleguide/Guide de style OCaml` - {ref}`styleguide/Guide de style C` - {ref}`styleguide/Guide de style Python` - {ref}`styleguide/Guide de style Makefile` - {ref}`styleguide/Guide de style Bash` - TODO: more ? ## Références - **OCaml** : [*CIS 120 OCaml Style Guide*](https://www.seas.upenn.edu/~cis120/20fa/ocaml_style/) à l'[Université de Pennsylvanie](https://www.upenn.edu/) ; - **C** : ma référence en français est le [WikiBooks:Conseils de codage en C](https://fr.wikibooks.org/wiki/Conseils_de_codage_en_C) - **Python** : en français [« Le guide de l'auto-stoppeur pour Python ! »](https://python-guide-fr.readthedocs.io/fr/latest/#writing-great-python-code) est MA référence, et en anglais je recommande [PEP8](https://pep8.org/) ou [celui de Google](https://google.github.io/styleguide/pyguide.html), un peu long mais exhaustif ; - **Makefile** : [ce tutoriel](http://perso.univ-lyon1.fr/jean-claude.iehl/Public/educ/Makefile.html) en français donne des bonnes pratiques, et celui-ci [en anglais](https://clarkgrubb.com/makefile-style-guide) ; - Pour d'autres langages, si besoin, [cette liste de "style guides" maintenu par Google](https://google.github.io/styleguide/) est utile ; - TODO: Aussi parler de linter/formateur automatiques ?